Додаток – Прозорец REPL во програмите


Во делот Интерактивна работа од поглавјето Основни функции напоменавме дека прозорецот REPL може да се користи и за текстуален влез и излез во кодовите што се извршуваат на уредот Микро:бит.

Овде ќе посочиме неколку примери за тоа како може да се употреби таа можност додека се работи на кодот (за време на развивањето на кодот).

Пример 1:

tri crte

Со следниот код би требало да се нацртаат три црти како на сликата, но тој не е исправен.

1
2
3
4
5
from microbit import *                                      

for x in range(0, 5, 2):
    for y in range(5, 2, -1):
        display.set_pixel(x, y, 5)

Поправете го кодот!

Дадениот код го внесуваме во уредувачот Mu, го вклучуваме прозорецот REPL и го ресетираме уредот Микро:бит. Во прозорецот REPL се појавува порака за грешка, којашто сега може полесно да ја прочитаме:

>>> Traceback (most recent call last):
  File "__main__", line 5, in <module>
ValueError: index out of bounds

Како што гледаме, проблемот е во тоа што во 5 линија од кодот (наредба display.set_pixel(x, y, 9)) некои од индексите се надвор од дозволените граници. За да може полесно да утврдиме дали се работи за индексот x или y и која вредност не е дозволена за него, може да додадеме и една наредба print:

Ќе го затвориме прозорецот REPL, ќе го префрлиме изменетиот код на уредот Микро:бит (Flash), повторно ќе го отвориме прозорецот REPL и ќе го ресетираме уредот со притискање на копчето што се наоѓа на неговата задна страна. Сега во прозорецот REPL го гледаме следново:

>>> x = 0 y = 5
Traceback (most recent call last):
  File "__main__", line 6, in <module>
ValueError: index out of bounds

Овој пат е малку појасно што е проблемот – вредноста за y e 5, а дозволени вредности се од 0 до 4. Ова би требало да ни даде идеја како да го поправиме кодот:

Со тестирање на кодот ќе се увериме дека проблемот е решен.


Можеби вие сосема поинаку би го напишале кодот, а и да требаше да помогнете некому да го поправи кодот, можеби ќе ја воочевте грешката и само со читање на кодот. Без оглед на тоа, овој пример секако ќе ви користи, бидејќи со него е прикажано на кој начин при поправањето на вашите кодови може да го користите прозорецот REPL за полесно да ги препознавате и наоѓате грешките.


Пример 2:

Во задача 16 од поглавјето Разни задачи вклучени се неколку долни редови од екранот, зависно од вредностите кои се отчитани на потенциометарот. Може да замислиме ситуација во која немаме потенциометар, а би сакале да напишеме барем дел од кодот и со тоа да заштедиме време за некои други делови од проектот.

Напишете код којшто го осветлува екранот на ист начин како во задача 16 од поглавјето Разни задачи, но место да отчитува вредности од потенциометарот нека го користи излезот за тастатура.

Кодот може да изгледа вака:

На овој начин наредбите за осветлување и бришење на екранот може да ги пишуваме, испробуваме и поправаме дури и кога освен самиот уред Микро:бит немаме друга опрема. Откако ќе бидеме задоволни од осветлувањето на екранот, треба само уште да избришеме или да искоментираме на наредбата со доделување вредности од тастатурата во 5 линија на кодот, а да ја активираме 4 линија на кодот (да ја отстраниме од неа ознаката # за коментар) и кодот е спремен да се употреби со потенциометар или некој сензор што е поврзан со пинот 0.


Пример 3:

Некоj од вас можеби ќе сака сам да направи една или повеќе слики кои подоцна ќе ги прикаже со кодовите. Во тој случај би било добро да имате можност интерактивно да ја менувате сликата на самиот уред Микро:бит, за да видите како изгледа и потоа да одлучите дали ви одговара или не. .. questionnote:

Напишете код којшто ќе прикажува некоја од готовите слики на екранот од уредот *Микро:бит* и ќе овозможи таа да може интерактивно да се менува.

Во долунаведениот код, се оди пиксел по пиксел низ сликата. Со притискање на копчето А постепено се зголемува осветленоста на тековниот пиксел до 9, па се враќа на 0 и повторно се зголемува (во круг). Со притискање на копчето В се преоѓа на следниот пиксел (по последниот пиксел повторно се враќаме на првиот). Кодот во прозорецот REPL ја испишува положбата и моменталната осветленост на пикселот на кој се наоѓаме, со цел да можеме полесно да го контролираме и следиме менувањето на сликата.

Овој програм за пробување слики би бил покорисен кога би можело по наше барање да испишува код за прикажување на сликата. Затоа, претходната верзија ќе ја надополниме со тоа што со истовремено стискање на двете копчиња ќе се испишува стринг со следниот облик:

99999:99999:99999:99999:99999

(Наместо деветки ќе биде испишана моменталната осветленост на секој од пикселите.) Потоа, добиениот стринг може да се ископира од прозорецот REPL и да се префрли во главниот код за којшто е направена сликата.


Ова се само некои примери за тоа како може да користите прозорец REPL во вашиот недовршен или помошен код. Се надеваме дека добивте идеја и дека ќе ѝ најдете и некоја друга корисна примена.